package com.ruibang.glass.material.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * A型架和水平托盘容器绑定的批次号信息
 * </p>
 *
 * @author wujie
 * @since 2024-02-05
 */

@ApiModel(value = "A型架和水平托盘容器绑定的批次号信息")
@TableName("glass.g_material_content_lot")
@Data
public class MaterialContentLot implements Serializable {

    @ApiModelProperty(value = "容器批次Id")
    @TableId(value = "lot_id", type = IdType.ASSIGN_ID)
    private String lotId;
    @ApiModelProperty(value = "容器编码")
    private String contentCode;
    @ApiModelProperty(value = "批次编号")
    private String lotCode;
    @ApiModelProperty(value = "批次号")
    private String batchNumber;
    @ApiModelProperty(value = "产线名称")
    private String lineName;
    @ApiModelProperty(value = "玻璃编号")
    private String glassCode;
    @ApiModelProperty(value = "下板位置")
    private String position;
    @ApiModelProperty(value = "当前使用位置")
    private String currentUsePosition;
    @ApiModelProperty(value = "序号")
    private Integer num;
    @ApiModelProperty(value = "Model等级:0=TF,1=CF,2=调机,3=NG,4=返投,5=再清洗")
    private String modelLevel;
    @ApiModelProperty(value = "等级")
    private String level;
    @ApiModelProperty(value = "长")
    private Double length;
    @ApiModelProperty(value = "宽")
    private Double wide;
    @ApiModelProperty(value = "厚度")
    private Double thickness;
    @ApiModelProperty(value = "绑定工位时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime bindTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "绑定容器时间")
    private LocalDateTime bindContainerTime;
    @ApiModelProperty(value = "入库状态:0=待收包,3=待质检,6=待入库,8=入库中,10=已入库,20=已出库,")
    private String inStatus;
    @ApiModelProperty(value = "BC状态:1=使用中,2=使用完成,3=已作废")
    private String status;
    @ApiModelProperty(value = "mes状态:1=未暂存,2=暂存完成")
    private String mesStatus;
    @ApiModelProperty(value = "创建时间")
    private String createTime;
    @ApiModelProperty(value = "创建人")
    private String createUser;
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @ApiModelProperty(value = "更新人")
    private String updateUser;
    @ApiModelProperty(value = "物品类型:2=成品,3=半成品,6=外购半成品")
    private String contentType;
    @ApiModelProperty(value = "结果")
    private String result;
    @ApiModelProperty(value = "是否手动解绑")
    private String isUnbind;
    @ApiModelProperty(value = "玻璃片数")
    private Integer momNum;
    @ApiModelProperty(value = "修改等级原因")
    private String changeLevelReason;
    private String changeLevelUser;
    @ApiModelProperty(value = "质检失败原因")
    private String unqualifiedReason;
    @ApiModelProperty(value = "收包时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime packageTime;
    @ApiModelProperty(value = "质检时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime levelTime;
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime inTime;
    @ApiModelProperty(value = "出库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime outTime;
    @ApiModelProperty(value = "发货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime sendTime;
    @ApiModelProperty(value = "")
    @TableField(exist = false)
    private List<MaterialLotItem> materialLotItemList;

    @ApiModelProperty(value = "物品编码")
    @TableField(exist = false)
    private String itemCode;

    @ApiModelProperty(value = "物品编码")
    @TableField(exist = false)
    private String itemName;

    @ApiModelProperty(value = "lot数量")
    @TableField(exist = false)
    private Integer lotQuality;

    @ApiModelProperty(value = "规格型号")
    @TableField(exist = false)
    private String specification;

    @ApiModelProperty(value = "仓库名")
    @TableField(exist = false)
    private String warehouseName;

    @ApiModelProperty(value = "库位")
    @TableField(exist = false)
    private String storageLocationName;
}
